コスト・パフォーマンス最適化サービスの AWS Compute Optimizer の使い方や各種設定方法を紹介!
こんにちは!kaz です。
最近、電気圧力鍋でモツ煮込み作るのハマってます。
はじめに
以前に Compute Optimizer の組織設定を行い、組織アカウントを一元化しました。
それから少し Compute Optimizer コンソールを触って操作感を確かめていたので、その備忘録がてら使い方や、各種設定方法を紹介します。
対象とする読者
- Compute Optimizer の簡単な使い方を知りたい
- 組織設定された Compute Optimizer で利用可能な設定方法や使い方を知りたい
AWS Compute Optimizer とは?
Compute Optimizer は機械学習を利用して、過去のリソース使用状況に関するメトリクスを分析し、リソースのパフォーマンス向上やコスト削減のレコメンデーションを提案してくれるサービスです。
ユーザーはそれらのレコメンデーションを受けて、最適なリソースを選択するのに役立ちます。 なお、2023/11 時点では下記の AWS サービスがサポートされています。
- Amazon EC2 インスタンス
- Amazon EC2 Auto Scaling グループ
- Amazon EBS ボリューム
- AWS Lambda 関数
- Amazon ECS on AWS Fargate
- 商用ソフトウェアライセンス(EC2 に関するライセンスのみ)
参考:AWS Compute Optimizer とは? - AWS Compute Optimizer
利用料金
利用料金は基本的には無料で利用することができるので、ぜひ有効化しましょう! なお、「EC2 メトリクスの拡張インフラストラクチャメトリクス」を利用した場合にのみ追加料金が発生します。
この拡張機能は Amazon EC2 と Auto Scaling グループに対して機能し、分析の期間を 14 日(無料)から 93 日(有料)に延長してより長い期間で分析を行うことができます。
参考:料金 - AWS Compute Optimizer | AWS
使い方と各種設定の紹介
Compute Optimizer の使い方や「レコメンデーションの詳細設定」、「委任管理者の設定(組織設定時のみ)」について紹介しようと思います。
なお、今回のコンソール画面ではすでに組織設定(マルチアカウント環境)が有効になっている Compute Optimizer を使用した紹介となりますが、スタンドアロン(シングルアカウント)で有効にしている時と大きく変わらないので適宜置き換えていただければと思います。
使い方
使い方と言っても、コンソール画面は非常に見やすいのでどんな感じでレコメンデーションされているのか等は直感的に操作できると思います。 また、AWS CLI からもレコメンデーションを確認することはできますが・・・個人的にはコンソール一択かなと思ったのでコマンドでの確認は紹介しません(気になる方は こちら)。
それでは、実際にレコメンデーションが出ている場合にどのように確認するのが良いかを紹介していきます。
まずは、ダッシュボードですね。 各種 AWS サービスのレコメンデーションが一覧されているのでここから使用状況等を確認して対象リソースの詳細を確認していくのが便利です。
- リージョンの指定ができる ここでは東京と大阪リージョンを選択していますが、「フィルタをクリア」をクリックしてリージョンの指定をなくすことで全リージョンの検出結果を確認できます
- 組織設定をしている場合に組織内のアカウントごとの状況を確認できる 残念なポイントですが、組織ビューのようなものはなくアカウントごとにしか確認できません ※このアカウント選択のリストは、組織設定が有効になっている場合かつ、管理アカウントまたは委任管理者アカウントでのみ表示されます
- レコメンデーション事項を実施した場合に節約可能な割合や節約額を確認できる このグラフの表示には AWS Cost Explorer のオプトインが必要です また、すでに最適化されている状態でもレコメンデーション事項によって節約の見込みがある場合にはグラフが表示されるようになっています
- パフォーマンスの状況に応じてリスクを分析し、リソースタイプごとのパフォーマンスリスクを確認できる パフォーマンスリスクは優先順位付けされているので、優先して対応すべきリスクを確認できます
もう少し画面をスクロールすると、リソースタイプごとに分析状況を確認できます。 今回のケースでは Lambda 関数が 1 個「プロビジョニング不足のメモリ」になっているみたいです。
これについて詳細を確認したいので、リンクになっている箇所をクリックします。
すると、フィルターされた状態で「Lambda 関数の推奨事項」ページが表示されます。 ちなみに、EC2 や EBS などの推奨事項を確認したい場合には、左ペインからリソースタイプごとのページに遷移できます。
ここでは、「プロビジョニング不足のメモリ」となっている Lambda 関数を選択して「詳細を表示」をクリックします。
推奨事項のオプションと、過去 2 週間(14 日)のリソース使用率が表示されます。
主に、確認したいのは赤枠の部分です。今回のケースでは「128 MB でデプロイされている Lambda 関数を 160 MB に変更することで処理時間が短くなり、コスト削減が見込めますよ!」というレコメンデーションのようですね。
ここでは紹介だけに留めますが、変更したことによるコスト差や予想される実行時間も確認ができますので Compute Optimizer のレコメンデーションに納得がいけば、Lambda 関数のメモリ変更をしちゃいましょう。
以上が、Compute Optimizer の基本的な使い方です。
Lambda 関数で紹介しましたが、リソースタイプが異なっても基本的な使い方は変わらないので Compute Optimizer をオプトインして、じゃんじゃん活用しましょう!!
参考:AWS Compute Optimizer ダッシュボードを表示する - AWS Compute Optimizer
レコメンデーションの詳細設定
レコメンデーションの詳細設定とは以下の赤枠を指しており、現時点では 3つの設定箇所があります。 なお、組織設定している場合は各アカウントにログインしなくても、管理アカウント(または、委任管理者)から設定が可能です。
- 拡張インフラストラクチャメトリクスの組織レベルの設定(有料の設定)
- 利用料金で触れましたが「EC2 メトリクスの拡張インフラストラクチャメトリクス」のことです
- Amazon EC2 と Auto Scaling グループに対して機能し、分析の期間を 14 日から 93 日に延長して分析します
- 参考:拡張インフラストラクチャメトリクス - AWS Compute Optimizer
- 推論されるワークロードタイプについての組織レベルの詳細設定
- Amazon EC2 と Auto Scaling グループに対して機能し、インスタンス内で実行されているアプリケーション(例えば PostgreSQL、Nginx、Redis 等)を推測します
- デフォルトでこの機能は有効ですが、リージョンごとに有効・無効を切り替えることができます
- 参考:推定ワークロードタイプ - AWS Compute Optimizer
- 参考:Viewing EC2 instance recommendations - AWS Compute Optimizer
- 外部メトリクスの取り込みに関する組織レベルの設定
- EC2 単体では提供されないメモリ使用率を外部メトリクスから取り込むことで、メモリのメトリクスも考慮しつつ Compute Optimizer が最適なレコメンデーションを提案してくれるようになり、よりコスト削減やパフォーマンスの向上を見込めます
- 下記 4 つの SaaS サービスから EC2 のメモリ使用率メトリクスを取り込むことが可能です
- Datadog
- Dynatrace
- Instana
- New Relic
- 参考:外部指標の取り込み - AWS Compute Optimizer
「推論されるワークロードタイプについての組織レベルの詳細設定」を試してみる
私の AWS 環境では Compute Optimizer を組織設定しているため、各アカウントごとの設定を管理アカウントから変更することができます。 試しにメンバーアカウントの「推論されるワークロードタイプについての組織レベルの詳細設定」を設定してみることにしました。
メンバーアカウントを選択して、「設定の表示」をクリックします。
すると、メンバーアカウントの詳細に遷移します。
まだ、何も設定されていない状態ですが「推論されるワークロードタイプについての組織レベルの詳細設定」の「編集」をクリックします。
今回は、東京リージョンを非アクティブ(無効化)してみました。 これで、東京リージョンでは推論されるワークロードタイプは機能しなくなります。
組織設定を行うことで、簡単に組織内のアカウントを一元的に管理することができます。
また、スタンドアロンで Compute Optimizer をオプトインしている場合にも上記と同じように自身のアカウント設定を変更できます。
委任管理者の設定(組織設定時のみ)
この設定は、Compute Optimizer を組織設定している場合のみ設定が可能です
組織設定がされている場合、管理アカウントから各メンバーアカウントのレコメンデーション状況の確認や詳細設定を実施することができますが、別のメンバーアカウントに「委任管理者」を設定することで管理アカウントと同様の操作を行えるようになります。 ※ただし、委任管理者に指定できるアカウントは 1 アカウントのみとなりますのでご注意を。
委任管理者にしたいアカウントを選択して、「委任管理者として登録」をクリックします。
確認画面が表示されますが、問題なければそのまま「確認」をクリックします。
登録が完了すると、「委任管理者」のマークが付与されました。
それでは、委任管理者に指定したアカウントにログインします。
Compute Optimizer コンソールを見ると、ダッシュボードからアカウントがリストされており、各メンバーアカウントのレコメンデーション状況を確認することができました。
上述しましたが委任管理者のため、管理アカウントのように「レコメンデーションの詳細設定」も可能です。
先ほどは東京リージョンを非アクティブ(無効化)しましたが、今回はアクティブ(有効化)に戻してみましょう。
アカウントを選択し、「推論されるワークロードタイプについての組織レベルの詳細設定」の「編集」をクリックします。
設定変更後、アクティブ化されていることを確認できました。
まとめ
いかがでしたでしょうか。
Compute Optimizer はコンピューティングリソースのコスト最適化やパフォーマンス向上を確認するための非常に便利なサービスになっていますので、無料で利用できるので使わない手はないでしょう。
AWS Organizations 環境であれば、組織設定もぜひ行っておきましょう!
詳細はこちら ↓
アノテーション株式会社について
アノテーション株式会社は、クラスメソッド社のグループ企業として「オペレーション・エクセレンス」を担える企業を目指してチャレンジを続けています。
「らしく働く、らしく生きる」のスローガンを掲げ、さまざまな背景をもつ多様なメンバーが自由度の高い働き方を通してお客様へサービスを提供し続けてきました。
現在当社では一緒に会社を盛り上げていただけるメンバーを募集中です。
少しでもご興味あれば、アノテーション株式会社WEBサイト をご覧ください。